import blogcrawlerUtil;

import time;
import os;


class HomeUrlUpdator:
    def update(self):
        return [];
    
class CrawlUpdator(HomeUrlUpdator):
    def __init__(self, updateUrl, updateParser):
        self.updateUrl = updateUrl;
        self.updateParser = updateParser;
        self.updatePath = str(time.time()) + '.update.xml';
        
    def update(self):
        urls = [];
        blogcrawlerUtil.crawlPage(self.updatePath, self.updateUrl);
        urls = self.updateParser.parse(self.updatePath);
        os.remove(self.updatePath);
        return urls;

import atomstream;    
class StreamUpdator(HomeUrlUpdator):
    def __init__(self, updateStreamUrl, updateElementParser, batchElemNum):
        self.updateStreamUrl = updateStreamUrl;
        self.updateElementParser = updateElementParser;
        self.elementIt = atomstream.connect(self.updateStreamUrl);
        self.batchElemNum = batchElemNum;
        
    def update(self):
        urls = [];
        for i in xrange(batchElemNum):
            elementStr = self.elementIt.next();
            url = self.updateElementParser.parse(elementStr);
            urls.append(url);
        return urls;
    
if __name__ == '__main__':
    import sys;
    if sys.argv[1] == '--livespace':
        import LiveSpaceParser;
        updateUrl = LiveSpacePageParser.updateUrl;
        updatePageParser = LiveSpacePageParser.LiveSpaceUpdateParser();
        updator = CrawlUpdator(updateUrl, updatePageParser);
    elif sys.argv[1] == '--livejournal':
        import LiveJournalParser;
        updateUrl = LiveJournalParser.updateUrl;
        updatePageParser = LiveJournalParser.LiveJournalUpdateParser();
        batchElemNum = 100;
        updator = CrawlUpdator(updateUrl, updatePageParser, batchElemNum);
    else:
        print 'python',sys.argv[1],'--livespace|--livejournal';
        sys.exit(-1);
    urls = updator.update();
    for url in urls:
        print url;